﻿<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:c="http://www.concordion.org/2007/concordion" xmlns:cp="http://www.agileinsider.org/concordion/plus" xmlns:bc="http://www.bcb.gov.br/concordion">
<head>
	<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
    <h1>Manter Quesitos de Impacto da Ameaça</h1>
	Eu como <i>Mantenedor</i> gostaria de poder Incluir, Alterar, Excluir e Listar os Quesitos de Impacto da Ameaça. Os quesitos de impacto da ameaça são parâmetros (itens de avaliação) inseridos para avaliar a magnitude dos prejuízos que poderiam ser causados pela exploração de uma vulnerabilidade por uma dada fonte de ameaça.
    <h3>Definições</h3> 
	- Ameaça: potencial de ocorrência de evento adverso, provocado pelo homem ou pela natureza, que possa causar consequências indesejáveis (danos e prejuízos), atuando sobre a(s) vulnerabilidade(s) de um ativo ou processo.<br/>
	- Fonte de Ameaça: autor de intenção e método direcionados à exploração intencional de uma vulnerabilidade; ou situação e método que podem explorar acidentalmente uma vulnerabilidade.<br />
    - Impacto: a magnitude dos prejuízos que poderiam ser causados pela exploração de uma vulnerabilidade por uma dada fonte de ameaça.<br />
   	- Quesitos: itens de avaliação utilizados para avaliar a eficiência de um conjunto de controle (por exemplo: lesõas a pessoas, prejuízos financeiros).<br />
	- Valor do quesito: opção de um quesito (por exemplo: não produz prejuízos financeiros, produz prejuízos financeiros de até R$ 10.000,00)<br />
	<br />
	<h3>Regras</h3>
    <a name="RN1">RN 1 - Não pode existir Quesito de Impacto da Ameaça sem nenhum Valor Quesito de Impacto da Ameaça.</a><br />
    <a name="RN2">RN 2 - Não podem existir dois Quesitos de Impacto da Ameaça com mesmo nome.</a><br />
    <a name="RN3">RN 3 - Não podem existir dois Valores de Quesitos de Impacto da Ameaça com mesmo nome para o <b>mesmo</b> quesito.</a><br />
    <a name="RN4">RN 4 - Os Quesitos de Impacto da Ameaça deverão ser apresentados em ordem alfabética pelo nome do quesito atendendo à <a href="../../GRS_RequisitosGerais.html#RGN01">RGN01</a></a>.
    <br />
    
    <br />
	<div cp:scenario="IncluirQuesitoDeImpactoDaAmeacaComSucesso" class="example">
		<h3>Cenário 1: Incluir Quesito de Impacto da Ameaça com sucesso</h3>
		<b><em>Quando</em></b>
		<span c:execute="quando()">
	    	o usuário incluir um Quesito de Impacto da Ameaça
	    </span>
		<br />
	    <b><em>Então</em></b>
		<span c:execute="#criadoQA = entao()">
			<span c:assertTrue="#criadoQA"> sistema salvará o Quesito</span>
			<br />
			<b><em>E</em></b>
			apresentará mensagem de sucesso "<span>Quesito de Impacto da Ameaça incluído com sucesso</span>".
		</span>
	</div>
	
	<div cp:scenario="IncluirQuesitoDeImpactoDaAmeacaSemInformarValor" class="example">
		<h3>Cenário 2: Incluir Quesito de De Impacto da Ameaça SEM informar valor</h3>
		<a href="#RN1">Ver RN 1</a>
		<br />
		<b><em>Quando</em></b>
		<span c:execute="quando()">
	    	o usuário tentar incluir um Quesito de Impacto da Ameaça sem informar nenhum Valor do Quesito de Impacto da Ameaça
	    </span>
		<br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoCriadoQA = entao()">
			<span c:assertFalse="#registroNaoCriadoQA">o sistema não irá realizar a inclusão</span><br />
			<b><em>E</em></b>
			apresentará a mensagem: "<span c:assertEquals="msgValorObrigatorio">Agora inclua pelo menos um "Valor do quesito de impacto da ameaça".</span>".
		</span>
	</div>
	
    <div cp:scenario="IncluirQuesitoDeImpactoDaAmeacaSemInformarDadosObrigatorios" class="example">
		<h3>Cenário 3: Incluir Quesito de Impacto da Ameaça SEM informar os dados Obrigatórios</h3>
		<b><em>Quando</em></b>
	    <span c:execute="quando()" >
	    	o usuário tentar incluir um Quesito de Impacto da Ameaça sem informar os campos obrigatórios
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#QAcriado = entao()">
			<span c:assertFalse="#QAcriado">o sistema não irá realizar a inclusão</span>.<br />
			<b><em>E</em></b>
		    apresentará a(s) mensagem(ns):
		    <br />
			"<span c:assertEquals="msgCampoNomeObrigatorio">O campo "Nome" é obrigatório.</span>".
			<br />
			"<span c:assertEquals="msgCampoDescricaoObrigatorio">O campo "Descrição" é obrigatório.</span>".
			<br />
		</span> 
	</div>
	
	<div cp:scenario="IncluirQuesitoDeImpactoDaAmeacaComNomeJaExistente" class="example">
		<h3>Cenário 4: Incluir Quesito de Impacto da Ameaça duplicado.</h3>
	  	<a href="#RN2">Ver RN 2</a>
		<br />
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue(#QA)">
        exista um Quesito de Impacto da Ameaça com o nome"<span c:set="#QA">PREJUÍZOS FINANCEIROS</span>".
        </span>
		<br />
		<b><em>Quando</em></b>
        <span c:execute="quando(#QA2)">
	    	o usuário tentar inserir um Quesito de Impacto da Ameaça com o mesmo nome "<span c:set="#QA2">Prejuízos financeiros</span>".
	    </span>
		<br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoCriadoQA = entao()">
		    <span c:assertFalse="#registroNaoCriadoQA"> o sistema não irá realizar a inclusão </span>.
		    <br />
	        <b><em>E</em></b>		
			apresentará a mensagem:"<span c:assertEquals="msgQAExistente">"Quesito de impacto da ameaça" já existente.</span>".
		</span>
	</div>

	<div cp:scenario="AlterarQuesitoDeImpactoDaAmeacaComSucesso" class="example">
		<h3>Cenário 5: Alterar Quesito de Impacto da Ameaça com sucesso.</h3>
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue()">
			exista um Quesito de Impacto da Ameaça
		</span>
        <br />
		<b><em>Quando</em></b>
        <span c:execute="quando()">
	    	o usuário alterar esse Quesito de Impacto da Ameaça (mudar nome, descrição, inserir e exclui Valor)
	    </span>
		<br />
		<b><em>Então</em></b>
		<span c:execute="#alteradoQA = entao()">
		    <span c:assertTrue="#alteradoQA"> o sistema salvará o quesito</span>.<br />
			<b><em>E</em></b>	
			apresentará a mensagem "<span>Quesito de Impacto da Ameaça alterado com sucesso</span>".
		</span>
	</div>
	
	<div cp:scenario="AlterarQuesitoDeImpactoDaAmeacaSemInformarDadosObrigatorios" class="example">
		<h3>Cenário 6: Alterar Quesito de Impacto da Ameaça SEM informar os dados Obrigatórios</h3>
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue()">
			exista um Quesito de Impacto da Ameaça
		</span>
        <br />
		<b><em>Quando</em></b>
	    <span c:execute="quando()" >
			usuário remover nome e descrição e tentar salvar a alteração desse quesito
		</span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#QAcriado = entao()">
			<span c:assertFalse="#QAcriado">o sistema não permitirá a alteração</span>
			<br />
			<b><em>E</em></b>
			apresentará a(s) mensagem(ns):<br /> 
			"<span c:assertEquals="msgCampoNomeObrigatorio">O campo "Nome" é obrigatório.</span>".
			<br />
			"<span c:assertEquals="msgCampoDescricaoObrigatorio">O campo "Descrição" é obrigatório.</span>".
		</span>
	</div>
	
	<div cp:scenario="AlterarQuesitoDeImpactoDaAmeacaComNomeJaExistente" class="example">
		<h3>Cenário 7: Alterar Quesito de Impacto da Ameaça com nome já existente.</h3>
		<a href="#RN2">Ver RN 2</a>
	  	<br />
		<b><em>Dado que</em></b>
		existam os seguintes Quesitos de Impacto da Ameaça:
		<table c:execute="dadoQue(#quesito)" border="1">
			<tr><th c:set="#quesito">Nome do Quesito</th></tr>
		    <tr><td>Lesões a pessoas</td></tr>
		    <tr><td>Prejuízos materiais</td></tr>
		</table>
        <br />
		<b><em>Quando</em></b>
	    <span c:execute="quando(#QA, #QA2)">
	    	o usuário alterar o nome do Quesito de Impacto da Ameaça "<span c:set="#QA2">Prejuízos materiais</span>" para "<span c:set="#QA">LESÕES A PESSOAS</span>"
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoAlteradoQA = entao()">
			<span c:assertFalse="#registroNaoAlteradoQA">o sistema não permitirá a alteração</span>.
			<br />
			<b><em>E</em></b>
			apresentará a mensagem "<span c:assertEquals="msgQAExistente">"Quesito de impacto da ameaça" já existente.</span>"
		</span>
	</div>
		
	<div cp:scenario="AlterarQuesitoDeImpactoDaAmeacaSemInformarValor" class="example">
		<h3>Cenário 8: Alterar Quesito de Impacto da Ameaça SEM informar VALOR</h3>
    	<a href="#RN1">Ver RN 1</a>
    	<br />
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue(#QA)" >
			exista o Quesito de Impacto da Ameaça "<span c:set="#QA">Prejuízos materiais</span>"
		</span>
		<br />
		<b><em>Quando</em></b>
	    <span c:execute="quando()" >
	    	o usuário remover os Valores desse Quesito de Impacto da Ameaça e tentar salvar
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoAlteradoQA = entao()">
			<span c:assertFalse="#registroNaoAlteradoQA">o sistema não permitirá a alteração</span>
			<br />
			<b><em>E</em></b>
			apresentará a mensagem: "<span c:assertEquals="msgValorObrigatorio">Agora inclua pelo menos um "Valor do quesito de impacto da ameaça".</span>".
		</span>
	</div>
	
	<div cp:scenario="ExcluirQuesitoDeImpactoDaAmeacaComSucesso" class="example">
		<h3>Cenário 9: Excluir Quesito de Impacto da Ameaça com sucesso</h3>
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue()" >
			exista o Quesito de Impacto da Ameaça
		</span>
		<br />
		<b><em>Quando</em></b>
	    <span>
	    	o usuário excluir o Quesito de Impacto da Ameaça
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#registroExcluido = entao()">
			<span c:assertTrue="#registroExcluido">o sistema excluirá o registro</span>
			<br />
			<b><em>E</em></b>
			apresentará a mensagem "<span>Quesito de Impacto da Ameaça excluído com sucesso</span>".
		</span> 
	</div>
	
	<div cp:scenario="IncluirValorDeQuesitoDeImpactoDaAmeacaSemDadosObrigatorios" class="example">
		<h3>Cenário 10: Incluir Valor de Quesito de Impacto da Ameaça Sem dados obrigatórios.</h3>
		<b><em>Quando</em></b>
	    <span>
	    	o usuário tenar incluir um Valor do Quesito de Impacto da Ameaça SEM informar os campos obrigatórios
	    </span>
		<br />
		<b><em>Então</em></b>
		<span c:execute="#VQAcriado = entao()" >
			<span c:assertFalse="#VQAcriado">o sistema não permitirá a inclusão</span>.
			<br />		
			<b><em>E</em></b>
			apresentará a(s) mensagem(ns):<br /> 
			"<span c:assertEquals="msgCampoNomeObrigatorio">O campo "Nome" é obrigatório.</span>".
			<br />
			"<span c:assertEquals="msgCampoDescricaoObrigatorio">O campo "Descrição" é obrigatório.</span>".
		</span>
	</div>
	
	<div cp:scenario="IncluirValorDeQuesitoDeImpactoDaAmeacaComNomeJaExistente" class="example">
		<h3>Cenário 11: Incluir Valor de Quesito de Impacto da Ameaça duplicado.</h3>
		<a href="#RN3">Ver RN 3</a>
		<br  />
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue(#VQA)">
			exista um Quesito de Impacto da Ameaça com o Valor "<span c:set="#VQA">Lesões a pessoas</span>"
		</span>
        <br />
		<b><em>Quando</em></b>
        <span c:execute="quando(#VQA2)">
	    	o usuário tentar inserir <em>para esse mesmo quesito</em> outro Valor de Quesito de Impacto da Ameaça com o mesmo nome "<span c:set="#VQA2">LESÕES A PESSOAS</span>"
	    </span> 
		<br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoCriadoVQA = entao()">
		    <span c:assertFalse="#registroNaoCriadoVQA"> o sistema não permitirá a inclusão</span><br />
	        <b><em>E</em></b>		
			 apresentará a mensagem "<span c:assertEquals="msgVQAExistente">"Valor do quesito de impacto da ameaça" já existente.</span>".
		 </span>
	</div>

	<div cp:scenario="AlterarValorDoQuesitoDeImpactoDaAmeacaSemDadosObrigatorios" class="example">
		<h3>Cenário 12: Alterar Valor de Quesito de Impacto da Ameaça sem informar os dados obrigatórios.</h3>
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue()">
			exista o Valor de Quesito de Impacto da Ameaça
		</span> 
        <br />
		<b><em>Quando</em></b>
	    <span c:execute="quando()" >
	    	o usuário remover o nome e descrição desse Valor do Quesito de Impacto da Ameaça e tentar salvar
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#VQAcriado = entao()" >
			<span c:assertFalse="#VQAcriado">o sistema não permitirá a alteração</span>.
			<br />
			<b><em>E</em></b>		
			apresentará a(s) mensagem(ns):
			<br />
			"<span c:assertEquals="msgCampoNomeObrigatorio">O campo "Nome" é obrigatório.</span>".
			<br />
			"<span c:assertEquals="msgCampoDescricaoObrigatorio">O campo "Descrição" é obrigatório.</span>".
		</span>
	</div>	
	 
	<div cp:scenario="AlterarValorDoQuesitoDeImpactoDaAmeacaComNomeJaExistente" class="example">
		<h3>Cenário 13: Alterar Valor de Quesito de Impacto da Ameaça com nome já existente.</h3>
		<a href="#RN3">Ver RN 3</a>
        <br />		
		<b><em>Dado que</em></b>
		<span c:execute="dadoQue(#VQA, #VQA2)">
			para um determinado quesito, existam os Valores de Quesitos de Impacto da Ameaça "<span c:set="#VQA">Lesões a pessoas</span>" e "<span c:set="#VQA2">Prejuízos materiais</span>"
		</span>
        <br />
		<b><em>Quando</em></b>
	    <span c:execute="quando(#VQA, #VQA2)" >
	    	o usuário alterar o nome do Valor do Quesito de Impacto da Ameaça "<span c:set="#VQA2">Prejuízos materiais</span>" para "<span c:set="#VQA">Lesões a pessoas</span>" <em>desse quesito</em>
	    </span>
	    <br />
		<b><em>Então</em></b>
		<span c:execute="#registroNaoAlteradoVQA = entao()">
			<span c:assertFalse="#registroNaoAlteradoVQA">o sistema não permitirá a alteração</span><br />
			<b><em>E</em></b>
			apresentará a mensagem "<span c:assertEquals="msgQAExistente">"Valor do quesito de impacto da ameaça" já existente.</span>".
		</span>
	</div>
	    	
	<div cp:scenario="ListarQuesitoDeImpactoDaAmeaca" class="example">
		<h3>Cenário 14: Listar Quesito de Impacto da Ameaça</h3>
		<a href="#RN4">Ver RN 4</a>
    	<br />
		<b><em>Dado que</em></b>
		<span>
	    	existam os seguintes Quesito de Impacto da Ameaça:
			<table c:execute="dadoQue(#quesito)" border="1">
		        <tr><th c:set="#quesito">Nome do quesito</th></tr>
		        <tr><td>CBA</td></tr>
		        <tr><td>abc</td></tr>
		        <tr><td>Bda</td></tr>
		    </table>
		    </span>
		<b><em>Quando</em></b>
	    <span>
	    	usuário listar os Quesitos de Impacto da Ameaça
	    </span>
	    <br />
		<b><em>Então</em></b>
		o sistema apresentará os Quesitos de Impacto da Ameaça na seguinte ordem:
		<table c:verifyRows="#quesito : entao()"  border="1">
	        <tr><th c:assertEquals="#quesito.nome">Lista de quesitos</th></tr>
	        <tr><td>abc</td></tr>
	        <tr><td>Bda</td></tr>
	        <tr><td>CBA</td></tr>
	    </table>
	</div>
</body>
</html>